home *** CD-ROM | disk | FTP | other *** search
- program SoundDemo;
- {$C-}
- {
- SOUND DEMONSTRATION PROGRAM Version 1.00A
-
- This program demonstrates TURBO PASCAL's standard procedures Sound,
- Delay and NoSound on the IBM PC and true compatibles.
-
- PSEUDO CODE
- 1. Sound an alarm until a key is pressed.
- a. Play G and D in octave 4
- 2. Sound a siren until a key is pressed.
-
-
- INSTRUCTIONS
- 1. Compile and run this program using the TURBO.COM compiler.
- 2. Type any key to stop the alarm.
- 3. Type any key to stop the siren and end the program.
-
- }
-
- type
- NoteRecord = record
- C,CF,D,DF,E,F,FF,G,GF,A,AF,B: integer;
- end;
-
- const
- Notes: NoteRecord =
- (C:1;CF:2;D:3;DF:4;E:5;F:6;FF:7;G:8;GF:9;A:10;AF:11;B:12);
-
- var
- ch : char;
-
- procedure Play(Octave,Note,Duration: integer);
-
- { Play Note in Octave Duration milliseconds
- Frequency computed by first computing C in
- Octave then increasing frequency by Note-1
- times the twelfth root of 2. (1.059463994)
-
- If Duration is zero Note will be played
- until you activate procedure NoSound }
-
- var
- Frequency : real;
- I : integer;
- begin
- Frequency := 32.625;
- for I := 1 to Octave do { Compute C in Octave }
- Frequency := Frequency * 2;
- for I := 1 to Note - 1 do { Increase frequency Note-1 times }
- Frequency := Frequency * 1.059463094;
- if Duration <> 0 then
- begin
- Sound(Round(Frequency));
- Delay(Duration);
- NoSound;
- end
- else Sound(Round(Frequency));
- end;
-
-
- procedure SoftAlarm;
- { Play the notes G and D in octave three 7 times
- each with a duration of 70 milliseconds. }
- var
- I: integer;
- begin
- for I := 1 to 7 do
- with Notes do
- begin
- Play(4,G,70);
- Play(4,D,70);
- end;
- delay(1000);
- end;
-
-
- procedure Siren;
- var
- Frequency: integer;
- begin
- for Frequency := 500 to 2000 do
- begin
- Delay(1);
- Sound(Frequency);
- end;
- for Frequency := 2000 downto 500 do
- begin
- Delay(1);
- Sound(Frequency);
- end;
- NoSound;
- end;
-
-
- procedure SoundAlarm;
- begin
- Writeln('Press any key to Stop');
- repeat
- SoftAlarm
- until KeyPressed;
- Read(kbd,ch);
- end; {SoundAlarm}
-
-
- procedure SoundSiren;
- begin
- Writeln('Press any key to Stop');
- repeat
- Siren
- until KeyPressed;
- Read(kbd,ch)
- end; {SoundSiren}
-
-
- begin
- SoundAlarm;
- SoundSiren;
- end.
-